<html>
    <head>页面相关API</head>
    <body>
        <script>
            /*
                一、getCurrentPage()  

                        getCurrentPages() 函数用于获取当前页面栈的实例，以数组形式按栈的顺序给出，第一个元素为首页，最后一个元素为当前页面。

                        1、getCurrentPages 兼容性

                                    HarmonyOS
                                        x

                        
                            ★、注意:

                                    getCurrentPages() 仅用于展示页面栈的情况，请勿修改页面栈，一避免造成页面状态错误。



                        2、每个页面实例对象的方法属性列表：

                                            方法	                描述	                        平台说明

                                    ①、page.$getAppWebview()	获取当前页面的webview对象实例	        App

                                    ②、page.$vm	                当前页面的Vue 实例	

                                    ③、page.route	            获取当前页面的路由 

                        3、注意：

                                ①、navigateTo, redirectTo 只能打开非 tabBar 页面。

                                ②、switchTab 只能打开 tabBar 页面。

                                ③、reLaunch 可以打开任意页面

                                ④、页面底部的 tabBar 由页面决定，即只要是定义为 tabBar 的页面，底部都有 tabBar.

                                ⑤、不能再首页 onReady之前进行页面跳转

                                ⑥、使用 选项式 API，不可床阿金 route响应式变量，否则会覆盖当前 page 实例的 route 属性。
            */

            /*
                 二、$getAppWebview()


                        1、概述

                                        uni-app 在 getCurrentPages() 获得的页面里内置了一个方法  $getAppWebview() 可以得到当前webview的对象实力，从而实现对 webview 更强大的控制。

                                        在html5Plus 中， plus.webview 具有强大的控制能力，可参考： WebviewObject

                                        但 uni-app 框架有自己的窗口管理机制，请不要自己创建和销毁 webview, 如有需求覆盖子窗体上去，请使用原生子窗体 subNvue.

                                    ★、注意： 此方法仅 App-Vue 支持

                        2、示例：

                                    获取当前页面 webview 的对象实例

                                            export default {
                                                data() {
                                                    return {
                                                    title: 'Hello'
                                                    }
                                                },
                                                onLoad() {
                                                    // #ifdef APP-PLUS
                                                    const currentWebview = this.$scope.$getAppWebview(); //此对象相当于html5plus里的plus.webview.currentWebview()。在uni-app里vue页面直接使用plus.webview.currentWebview()无效
                                                    currentWebview.setBounce({position:{top:'100px'},changeoffset:{top:'0px'}}); //动态重设bounce效果
                                                    // #endif
                                                }
                                            }

                                    获取指定页面的webview的对象实例

                                    getCurrentPages()  可以得到所有页面对象，然后根据数组，可以取指定的页面 webview 对象。


                                    eg:

                                            var pages = getCurrentPages();
                                            var page = pages[pages.length - 1];

                                            // #ifdef APP-PLUS
                                            var currentWebview = page.$getAppWebview();
                                            console.log(currentWebview.id);//获得当前webview的id
                                            console.log(currentWebview.isVisible());//查询当前webview是否可见
                                            // #endif


                                    uni-app自带的web-view组件，是页面中新插入的一个子webview。获取该对象的方法见：https://ask.dcloud.net.cn/article/35036
            */

            /*
                三、$vm

                        当前页面的Vue实例

                        通过页面的Vue实例可以获取页面的数据、调用页面上的方法以及见IT男该页面的生命周期等。

                        eg：

                                const page = getCurrnetPages()[0];
                                const vm = page.$vm;

                                // 监听生命周期，小程序端部分其他生命周期需要在页面选项中配置过才可以生效

                                vm.$on('hook:onHide', () => {
                                    console.log('onHide');
                                });

                                // 获取页面数据
                                console.log(vm.$data.title);

                                // 调用页面方法
                                vm.test()
            */
        </script>
    </body>
</html>